import org.springframework.util.StringUtils;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
import java.util.Random;
import java.util.Scanner;

//public class NIOClientTest implements Runnable{
//    public static void main(String[] args) throws Exception{
//        for (int i = 0 ; i < 500;i ++) {
//            new Thread(new NIOClientTest()).start();
//        }
//        Scanner scanner = new Scanner(System.in);
//        scanner.hasNext();
//    }
//
//    @Override
//    public void run() {
//        try {
//            //得到一个网络通道
//            SocketChannel socketChannel = SocketChannel.open();
//            //设置非阻塞
//            socketChannel.configureBlocking(true);
//            //提供服务器的ip 和 端口
//            InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 9999);
//
//            //连接服务器
//            if (!socketChannel.connect(inetSocketAddress)) {
//                while (!socketChannel.finishConnect()) {
//                    System.out.println("因为连接需要时间,客户端不会阻塞,可以做其他工作...");
//                }
//            }
//            //...如果连接成功, 就发送数据
//            Random random = new Random();
//            while (true) {
//                int max = 100000;
//                int min = 0;
//                int s = random.nextInt(max)%(max-min+1) + min;
//
//                int num = random.nextInt(max);
//                String str = "set zxz" + num + " " + num;
//                String str2 = "get zxz" + num;
//                if (StringUtils.isEmpty(str)) {
//                    continue;
//                }
//                if ("quit".equals(str)) {
//                    break;
//                }
//                //包裹为字节数组
//                ByteBuffer buffer = ByteBuffer.wrap(random.nextBoolean() ? str.getBytes() : str2.getBytes());
//                //发送数据, 将buffer 数据写入channel
//                socketChannel.write(buffer);
//                ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
//                int read = socketChannel.read(byteBuffer);
//                String output = new String(byteBuffer.array(), 0, read);
//            }
//        } catch (Exception e) {
//
//        }
//    }
//}
